<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Ipopt: Ipopt::NLP Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 40px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Ipopt Documentation
   &#160;<!--span id="projectnumber">3.14.12</span-->
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classIpopt_1_1NLP.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classIpopt_1_1NLP-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Ipopt::NLP Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Traditional NLP.  
 <a href="classIpopt_1_1NLP.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Ipopt::NLP:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classIpopt_1_1NLP__inherit__graph.png" border="0" usemap="#Ipopt_1_1NLP_inherit__map" alt="Inheritance graph"/></div>
<map name="Ipopt_1_1NLP_inherit__map" id="Ipopt_1_1NLP_inherit__map">
<area shape="rect" title="Traditional NLP." alt="" coords="156,80,244,107"/>
<area shape="rect" href="classIpopt_1_1NLPBoundsRemover.html" title="This is an adapter for an NLP that converts variable bound constraints to inequality constraints." alt="" coords="5,155,200,181"/>
<area shape="rect" href="classIpopt_1_1TNLPAdapter.html" title="This class adapts the TNLP interface so it looks like an NLP interface." alt="" coords="224,155,371,181"/>
<area shape="rect" href="classIpopt_1_1ReferencedObject.html" title="Storing the reference count of all the smart pointers that currently reference it." alt="" coords="111,5,289,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9bdad901e4cb4aa8fbe71c35e61948b0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a9bdad901e4cb4aa8fbe71c35e61948b0">GetQuasiNewtonApproximationSpaces</a> (<a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;approx_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &gt; &amp;P_approx)</td></tr>
<tr class="memdesc:a9bdad901e4cb4aa8fbe71c35e61948b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for obtaining the subspace in which the limited-memory Hessian approximation should be done.  <a href="classIpopt_1_1NLP.html#a9bdad901e4cb4aa8fbe71c35e61948b0">More...</a><br /></td></tr>
<tr class="separator:a9bdad901e4cb4aa8fbe71c35e61948b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Constructors/Destructors</div></td></tr>
<tr class="memitem:a4352bb88edb772f6d4eeb5a90f019f24"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a4352bb88edb772f6d4eeb5a90f019f24">NLP</a> ()</td></tr>
<tr class="memdesc:a4352bb88edb772f6d4eeb5a90f019f24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="classIpopt_1_1NLP.html#a4352bb88edb772f6d4eeb5a90f019f24">More...</a><br /></td></tr>
<tr class="separator:a4352bb88edb772f6d4eeb5a90f019f24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab586f13c9656ef4937f41b130e0bcfe4"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#ab586f13c9656ef4937f41b130e0bcfe4">~NLP</a> ()</td></tr>
<tr class="memdesc:ab586f13c9656ef4937f41b130e0bcfe4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor.  <a href="classIpopt_1_1NLP.html#ab586f13c9656ef4937f41b130e0bcfe4">More...</a><br /></td></tr>
<tr class="separator:ab586f13c9656ef4937f41b130e0bcfe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a210b450f617010d9dbdbd210d0f26a4e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a210b450f617010d9dbdbd210d0f26a4e">DECLARE_STD_EXCEPTION</a> (USER_SCALING_NOT_IMPLEMENTED)</td></tr>
<tr class="memdesc:a210b450f617010d9dbdbd210d0f26a4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exceptions.  <a href="classIpopt_1_1NLP.html#a210b450f617010d9dbdbd210d0f26a4e">More...</a><br /></td></tr>
<tr class="separator:a210b450f617010d9dbdbd210d0f26a4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c86f785c4df1a6a5c07e293d8daffed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a3c86f785c4df1a6a5c07e293d8daffed">DECLARE_STD_EXCEPTION</a> (INVALID_NLP)</td></tr>
<tr class="separator:a3c86f785c4df1a6a5c07e293d8daffed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">NLP Initialization (overload in derived classes).</div></td></tr>
<tr class="memitem:a57e81a7b5f494899c4dd6279f30fa9f0"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a57e81a7b5f494899c4dd6279f30fa9f0">ProcessOptions</a> (const <a class="el" href="classIpopt_1_1OptionsList.html">OptionsList</a> &amp;, const std::string &amp;)</td></tr>
<tr class="memdesc:a57e81a7b5f494899c4dd6279f30fa9f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overload if you want the chance to process options or parameters that may be specific to the <a class="el" href="classIpopt_1_1NLP.html" title="Traditional NLP.">NLP</a>.  <a href="classIpopt_1_1NLP.html#a57e81a7b5f494899c4dd6279f30fa9f0">More...</a><br /></td></tr>
<tr class="separator:a57e81a7b5f494899c4dd6279f30fa9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a448e8181391c83e07c82e7c84b54a306"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a448e8181391c83e07c82e7c84b54a306">GetSpaces</a> (<a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;x_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;c_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;d_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;x_l_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;px_l_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;x_u_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;px_u_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;d_l_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;pd_l_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;d_u_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;pd_u_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;Jac_c_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;Jac_d_space, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1SymMatrixSpace.html">SymMatrixSpace</a> &gt; &amp;Hess_lagrangian_space)=0</td></tr>
<tr class="memdesc:a448e8181391c83e07c82e7c84b54a306"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for creating the derived vector / matrix types.  <a href="classIpopt_1_1NLP.html#a448e8181391c83e07c82e7c84b54a306">More...</a><br /></td></tr>
<tr class="separator:a448e8181391c83e07c82e7c84b54a306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a062722d55ce06ca35cd6c13b63587823"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a062722d55ce06ca35cd6c13b63587823">GetBoundsInformation</a> (const <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;Px_L, <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x_L, const <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;Px_U, <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x_U, const <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;Pd_L, <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;d_L, const <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;Pd_U, <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;d_U)=0</td></tr>
<tr class="memdesc:a062722d55ce06ca35cd6c13b63587823"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for obtaining the bounds information.  <a href="classIpopt_1_1NLP.html#a062722d55ce06ca35cd6c13b63587823">More...</a><br /></td></tr>
<tr class="separator:a062722d55ce06ca35cd6c13b63587823"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3db915b0a6ddedfc6d064043a6df6c2b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a3db915b0a6ddedfc6d064043a6df6c2b">GetStartingPoint</a> (<a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; x, bool need_x, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; y_c, bool need_y_c, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; y_d, bool need_y_d, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; z_L, bool need_z_L, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; z_U, bool need_z_U)=0</td></tr>
<tr class="memdesc:a3db915b0a6ddedfc6d064043a6df6c2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for obtaining the starting point for all the iterates.  <a href="classIpopt_1_1NLP.html#a3db915b0a6ddedfc6d064043a6df6c2b">More...</a><br /></td></tr>
<tr class="separator:a3db915b0a6ddedfc6d064043a6df6c2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad53d47a017c13c4f90459c6c1d40925d"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#ad53d47a017c13c4f90459c6c1d40925d">GetWarmStartIterate</a> (<a class="el" href="classIpopt_1_1IteratesVector.html">IteratesVector</a> &amp;)</td></tr>
<tr class="memdesc:ad53d47a017c13c4f90459c6c1d40925d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for obtaining an entire iterate as a warmstart point.  <a href="classIpopt_1_1NLP.html#ad53d47a017c13c4f90459c6c1d40925d">More...</a><br /></td></tr>
<tr class="separator:ad53d47a017c13c4f90459c6c1d40925d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">NLP evaluation routines (overload in derived classes).</div></td></tr>
<tr class="memitem:ad4180ae1884375f56eb45d8f1daa0cc5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#ad4180ae1884375f56eb45d8f1daa0cc5">Eval_f</a> (const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a> &amp;f)=0</td></tr>
<tr class="separator:ad4180ae1884375f56eb45d8f1daa0cc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39373485171b0201c09d587e317d9aee"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a39373485171b0201c09d587e317d9aee">Eval_grad_f</a> (const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x, <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;g_f)=0</td></tr>
<tr class="separator:a39373485171b0201c09d587e317d9aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8abc36cb9f8486431990e403d41fbd75"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a8abc36cb9f8486431990e403d41fbd75">Eval_c</a> (const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x, <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;c)=0</td></tr>
<tr class="separator:a8abc36cb9f8486431990e403d41fbd75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6294eb2321b4e974b43e525cde47c8a"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#ad6294eb2321b4e974b43e525cde47c8a">Eval_jac_c</a> (const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x, <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;jac_c)=0</td></tr>
<tr class="separator:ad6294eb2321b4e974b43e525cde47c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45516306252b77258e1d1d1027ee1b02"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a45516306252b77258e1d1d1027ee1b02">Eval_d</a> (const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x, <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;d)=0</td></tr>
<tr class="separator:a45516306252b77258e1d1d1027ee1b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba4891cc4903ac53a00debb3bd3c3738"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#aba4891cc4903ac53a00debb3bd3c3738">Eval_jac_d</a> (const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x, <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;jac_d)=0</td></tr>
<tr class="separator:aba4891cc4903ac53a00debb3bd3c3738"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14cd88b672c62a435fca76c8a7ed4631"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a14cd88b672c62a435fca76c8a7ed4631">Eval_h</a> (const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;x, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a> obj_factor, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;yc, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;yd, <a class="el" href="classIpopt_1_1SymMatrix.html">SymMatrix</a> &amp;h)=0</td></tr>
<tr class="separator:a14cd88b672c62a435fca76c8a7ed4631"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">NLP solution routines.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Have default dummy implementations that can be overloaded. </p>
</div></td></tr>
<tr class="memitem:af5ac10c639e5587a8b4cdd4423aeea17"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#af5ac10c639e5587a8b4cdd4423aeea17">FinalizeSolution</a> (<a class="el" href="namespaceIpopt.html#a53a5dc5f64f568252ba7bb7385e7f834">SolverReturn</a>, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;, const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, const <a class="el" href="classIpopt_1_1IpoptData.html">IpoptData</a> *, <a class="el" href="classIpopt_1_1IpoptCalculatedQuantities.html">IpoptCalculatedQuantities</a> *)</td></tr>
<tr class="memdesc:af5ac10c639e5587a8b4cdd4423aeea17"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called at the very end of the optimization.  <a href="classIpopt_1_1NLP.html#af5ac10c639e5587a8b4cdd4423aeea17">More...</a><br /></td></tr>
<tr class="separator:af5ac10c639e5587a8b4cdd4423aeea17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cf00e4fc7ad13c810a6d1e238221fee"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a9cf00e4fc7ad13c810a6d1e238221fee">IntermediateCallBack</a> (<a class="el" href="IpReturnCodes__inc_8h.html#a5daff61568f9909c518fb61116260387">AlgorithmMode</a>, <a class="el" href="namespaceIpopt.html#a5a4a27f325033a0e5d85a4ebc4038b57">Index</a>, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>, <a class="el" href="namespaceIpopt.html#a5a4a27f325033a0e5d85a4ebc4038b57">Index</a>, const <a class="el" href="classIpopt_1_1IpoptData.html">IpoptData</a> *, <a class="el" href="classIpopt_1_1IpoptCalculatedQuantities.html">IpoptCalculatedQuantities</a> *)</td></tr>
<tr class="memdesc:a9cf00e4fc7ad13c810a6d1e238221fee"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called once per iteration, after the iteration summary output has been printed.  <a href="classIpopt_1_1NLP.html#a9cf00e4fc7ad13c810a6d1e238221fee">More...</a><br /></td></tr>
<tr class="separator:a9cf00e4fc7ad13c810a6d1e238221fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a8a5d127db49494ab7001e55c5438f888"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a8a5d127db49494ab7001e55c5438f888">GetScalingParameters</a> (const <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt;, const <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt;, const <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt;, <a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a> &amp;, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; &amp;, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; &amp;, <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; &amp;) const</td></tr>
<tr class="memdesc:a8a5d127db49494ab7001e55c5438f888"><td class="mdescLeft">&#160;</td><td class="mdescRight">Routines to get the scaling parameters.  <a href="classIpopt_1_1NLP.html#a8a5d127db49494ab7001e55c5438f888">More...</a><br /></td></tr>
<tr class="separator:a8a5d127db49494ab7001e55c5438f888"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classIpopt_1_1ReferencedObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classIpopt_1_1ReferencedObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classIpopt_1_1ReferencedObject.html">Ipopt::ReferencedObject</a></td></tr>
<tr class="memitem:a5c0f2208e3ead22bf7c5179381ed8203 inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1ReferencedObject.html#a5c0f2208e3ead22bf7c5179381ed8203">ReferencedObject</a> ()</td></tr>
<tr class="separator:a5c0f2208e3ead22bf7c5179381ed8203 inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbbf3aa5307da62ab8224ba599d4bd7a inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1ReferencedObject.html#adbbf3aa5307da62ab8224ba599d4bd7a">~ReferencedObject</a> ()</td></tr>
<tr class="separator:adbbf3aa5307da62ab8224ba599d4bd7a inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac517534e10e36c946aeefc6fe337777 inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceIpopt.html#a5a4a27f325033a0e5d85a4ebc4038b57">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1ReferencedObject.html#aac517534e10e36c946aeefc6fe337777">ReferenceCount</a> () const</td></tr>
<tr class="separator:aac517534e10e36c946aeefc6fe337777 inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa69ecb0f026bd741e2fa84c31d4ec332 inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1ReferencedObject.html#aa69ecb0f026bd741e2fa84c31d4ec332">AddRef</a> (const <a class="el" href="classIpopt_1_1Referencer.html">Referencer</a> *referencer) const</td></tr>
<tr class="separator:aa69ecb0f026bd741e2fa84c31d4ec332 inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6c952e7d1a63080dc8f121c008944fc inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1ReferencedObject.html#ae6c952e7d1a63080dc8f121c008944fc">ReleaseRef</a> (const <a class="el" href="classIpopt_1_1Referencer.html">Referencer</a> *referencer) const</td></tr>
<tr class="separator:ae6c952e7d1a63080dc8f121c008944fc inherit pub_methods_classIpopt_1_1ReferencedObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Default Compiler Generated Methods</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>(Hidden to avoid implicit creation/calling).</p>
<p>These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called. </p>
</div></td></tr>
<tr class="memitem:a54b8dc5a5e0fbc177660d1b75262b092"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a54b8dc5a5e0fbc177660d1b75262b092">NLP</a> (const <a class="el" href="classIpopt_1_1NLP.html">NLP</a> &amp;)</td></tr>
<tr class="memdesc:a54b8dc5a5e0fbc177660d1b75262b092"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy Constructor.  <a href="classIpopt_1_1NLP.html#a54b8dc5a5e0fbc177660d1b75262b092">More...</a><br /></td></tr>
<tr class="separator:a54b8dc5a5e0fbc177660d1b75262b092"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d5621c69fd1239c153f1cf32d5d70a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1NLP.html#a8d5621c69fd1239c153f1cf32d5d70a8">operator=</a> (const <a class="el" href="classIpopt_1_1NLP.html">NLP</a> &amp;)</td></tr>
<tr class="memdesc:a8d5621c69fd1239c153f1cf32d5d70a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Assignment Operator.  <a href="classIpopt_1_1NLP.html#a8d5621c69fd1239c153f1cf32d5d70a8">More...</a><br /></td></tr>
<tr class="separator:a8d5621c69fd1239c153f1cf32d5d70a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Traditional NLP. </p>
<p>Represents NLPs of the form </p><p class="formulaDsp">
\begin{eqnarray*} \mathrm{min} &amp;&amp; f(x), \\ \mathrm{s.t.} &amp;&amp; c(x) = 0, &amp;\qquad y_c\\ &amp;&amp; d_L \leq d(x) \leq d_U, &amp;\qquad y_d \\ &amp;&amp; x_L \leq x \leq x_U, &amp;\qquad z_L, z_U \end{eqnarray*}
</p>
<p> where \(y_c\), \(y_d\), \(z_L\), \(z_U\) name the dual variables of the corresponding constraints.</p>
<p>A prominent implementation of a <a class="el" href="classIpopt_1_1NLP.html" title="Traditional NLP.">NLP</a> is <a class="el" href="classIpopt_1_1TNLPAdapter.html" title="This class adapts the TNLP interface so it looks like an NLP interface.">TNLPAdapter</a>.</p>
<p>A traditional NLP is wrapper into a <a class="el" href="classIpopt_1_1IpoptNLP.html" title="This is the abstract base class for classes that map the traditional NLP into something that is more ...">IpoptNLP</a>, e.g., <a class="el" href="classIpopt_1_1OrigIpoptNLP.html" title="This class maps the traditional NLP into something that is more useful for Ipopt.">OrigIpoptNLP</a>. </p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00041">41</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a4352bb88edb772f6d4eeb5a90f019f24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4352bb88edb772f6d4eeb5a90f019f24">&#9670;&nbsp;</a></span>NLP() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::NLP::NLP </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default constructor. </p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00047">47</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>

</div>
</div>
<a id="ab586f13c9656ef4937f41b130e0bcfe4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab586f13c9656ef4937f41b130e0bcfe4">&#9670;&nbsp;</a></span>~NLP()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Ipopt::NLP::~NLP </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default destructor. </p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00051">51</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>

</div>
</div>
<a id="a54b8dc5a5e0fbc177660d1b75262b092"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54b8dc5a5e0fbc177660d1b75262b092">&#9670;&nbsp;</a></span>NLP() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::NLP::NLP </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1NLP.html">NLP</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy Constructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a210b450f617010d9dbdbd210d0f26a4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a210b450f617010d9dbdbd210d0f26a4e">&#9670;&nbsp;</a></span>DECLARE_STD_EXCEPTION() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::NLP::DECLARE_STD_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">USER_SCALING_NOT_IMPLEMENTED&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Exceptions. </p>

</div>
</div>
<a id="a3c86f785c4df1a6a5c07e293d8daffed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c86f785c4df1a6a5c07e293d8daffed">&#9670;&nbsp;</a></span>DECLARE_STD_EXCEPTION() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::NLP::DECLARE_STD_EXCEPTION </td>
          <td>(</td>
          <td class="paramtype">INVALID_NLP&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a57e81a7b5f494899c4dd6279f30fa9f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57e81a7b5f494899c4dd6279f30fa9f0">&#9670;&nbsp;</a></span>ProcessOptions()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::ProcessOptions </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1OptionsList.html">OptionsList</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Overload if you want the chance to process options or parameters that may be specific to the <a class="el" href="classIpopt_1_1NLP.html" title="Traditional NLP.">NLP</a>. </p>

<p>Reimplemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#aef5ac8f39376b72253a6d6d6b1831b70">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#a8af075022694a01745bb1287c08d3a5f">Ipopt::NLPBoundsRemover</a>.</p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00064">64</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>

</div>
</div>
<a id="a448e8181391c83e07c82e7c84b54a306"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a448e8181391c83e07c82e7c84b54a306">&#9670;&nbsp;</a></span>GetSpaces()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::GetSpaces </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>x_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>c_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>d_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>x_l_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>px_l_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>x_u_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>px_u_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>d_l_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>pd_l_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>d_u_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>pd_u_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Jac_c_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1MatrixSpace.html">MatrixSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Jac_d_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1SymMatrixSpace.html">SymMatrixSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>Hess_lagrangian_space</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Method for creating the derived vector / matrix types. </p>
<p>The Hess_lagrangian_space pointer can be NULL if a quasi-Newton options is chosen. </p>

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#ae30c484cb956f1beb507e8fbc7462b5f">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#ac3e1f61783074a309e1332e06bbd14fa">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="a062722d55ce06ca35cd6c13b63587823"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a062722d55ce06ca35cd6c13b63587823">&#9670;&nbsp;</a></span>GetBoundsInformation()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::GetBoundsInformation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;&#160;</td>
          <td class="paramname"><em>Px_L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x_L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;&#160;</td>
          <td class="paramname"><em>Px_U</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x_U</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;&#160;</td>
          <td class="paramname"><em>Pd_L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>d_L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;&#160;</td>
          <td class="paramname"><em>Pd_U</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>d_U</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Method for obtaining the bounds information. </p>

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#ac814f1b48e9f972dd2ae6bc6f70ebe98">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#ac39bf6ed1ae8b72e11a64ea7a16f80a9">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="a3db915b0a6ddedfc6d064043a6df6c2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3db915b0a6ddedfc6d064043a6df6c2b">&#9670;&nbsp;</a></span>GetStartingPoint()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::GetStartingPoint </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>need_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt;&#160;</td>
          <td class="paramname"><em>y_c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>need_y_c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt;&#160;</td>
          <td class="paramname"><em>y_d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>need_y_d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt;&#160;</td>
          <td class="paramname"><em>z_L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>need_z_L</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt;&#160;</td>
          <td class="paramname"><em>z_U</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>need_z_U</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Method for obtaining the starting point for all the iterates. </p>

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#a4e1f40b2c1245732ab5f57541321a0ef">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#aef26dbbbe46426d8824a1ec0a15cd30c">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="ad53d47a017c13c4f90459c6c1d40925d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad53d47a017c13c4f90459c6c1d40925d">&#9670;&nbsp;</a></span>GetWarmStartIterate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::GetWarmStartIterate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1IteratesVector.html">IteratesVector</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Method for obtaining an entire iterate as a warmstart point. </p>
<p>The incoming <a class="el" href="classIpopt_1_1IteratesVector.html" title="Specialized CompoundVector class specifically for the algorithm iterates.">IteratesVector</a> has to be filled. The default dummy implementation returns false. </p>

<p>Reimplemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#aa6c8a9528f9e5b3bce28977aed64a7f5">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#afd970daf7a1e453e7ed40e7ab1bbdb6c">Ipopt::NLPBoundsRemover</a>.</p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00125">125</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>

</div>
</div>
<a id="ad4180ae1884375f56eb45d8f1daa0cc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4180ae1884375f56eb45d8f1daa0cc5">&#9670;&nbsp;</a></span>Eval_f()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::Eval_f </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a> &amp;&#160;</td>
          <td class="paramname"><em>f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#acd3957eacad73c45281d211a1325fd10">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#a486beaaf38829c5b076ed86e81fb4dc5">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="a39373485171b0201c09d587e317d9aee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39373485171b0201c09d587e317d9aee">&#9670;&nbsp;</a></span>Eval_grad_f()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::Eval_grad_f </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>g_f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#a400dcedb66ba2256d4a0a062f6b01daf">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#a3812bcd2ab07071a349ec22f7c5d6b5b">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="a8abc36cb9f8486431990e403d41fbd75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8abc36cb9f8486431990e403d41fbd75">&#9670;&nbsp;</a></span>Eval_c()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::Eval_c </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#aee33e5fa1338711149df79423971ecb2">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#a17ce021ed4e18bbf28689133149aec14">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="ad6294eb2321b4e974b43e525cde47c8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6294eb2321b4e974b43e525cde47c8a">&#9670;&nbsp;</a></span>Eval_jac_c()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::Eval_jac_c </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;&#160;</td>
          <td class="paramname"><em>jac_c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#aa6d9be004ba3eb3d8bfe0b244c9bcca5">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#a382ca2e4f138bb09e5058725e76be1bb">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="a45516306252b77258e1d1d1027ee1b02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45516306252b77258e1d1d1027ee1b02">&#9670;&nbsp;</a></span>Eval_d()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::Eval_d </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#a7f371d2d1ffc584cf9c7df4c84d98908">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#ab4a6bc76325ef88805a350d2a3ac758c">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="aba4891cc4903ac53a00debb3bd3c3738"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba4891cc4903ac53a00debb3bd3c3738">&#9670;&nbsp;</a></span>Eval_jac_d()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::Eval_jac_d </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &amp;&#160;</td>
          <td class="paramname"><em>jac_d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#a43d697bfe05eb19bc6f85ed24872ec60">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#ac893de19dca179a6dde68a852e10fc79">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="a14cd88b672c62a435fca76c8a7ed4631"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14cd88b672c62a435fca76c8a7ed4631">&#9670;&nbsp;</a></span>Eval_h()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::Eval_h </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname"><em>obj_factor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>yc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname"><em>yd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SymMatrix.html">SymMatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#abfdd1e3b48bf4ddd8a60577f4fa889c4">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#ad128e2536a72413480685932d72a5d98">Ipopt::NLPBoundsRemover</a>.</p>

</div>
</div>
<a id="af5ac10c639e5587a8b4cdd4423aeea17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5ac10c639e5587a8b4cdd4423aeea17">&#9670;&nbsp;</a></span>FinalizeSolution()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Ipopt::NLP::FinalizeSolution </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#a53a5dc5f64f568252ba7bb7385e7f834">SolverReturn</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1IpoptData.html">IpoptData</a> *&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1IpoptCalculatedQuantities.html">IpoptCalculatedQuantities</a> *&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method is called at the very end of the optimization. </p>
<p>It provides the final iterate to the user, so that it can be stored as the solution. The status flag indicates the outcome of the optimization, where SolverReturn is defined in <a class="el" href="IpAlgTypes_8hpp.html">IpAlgTypes.hpp</a>. <br  />
 </p>

<p>Reimplemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#ad9cf67460407b60c7abceed37a47a6b7">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#a250b1fee212af4cff7ca4a32accd9940">Ipopt::NLPBoundsRemover</a>.</p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00184">184</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>

</div>
</div>
<a id="a9cf00e4fc7ad13c810a6d1e238221fee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cf00e4fc7ad13c810a6d1e238221fee">&#9670;&nbsp;</a></span>IntermediateCallBack()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Ipopt::NLP::IntermediateCallBack </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="IpReturnCodes__inc_8h.html#a5daff61568f9909c518fb61116260387">AlgorithmMode</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#a5a4a27f325033a0e5d85a4ebc4038b57">Index</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#a5a4a27f325033a0e5d85a4ebc4038b57">Index</a>&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1IpoptData.html">IpoptData</a> *&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1IpoptCalculatedQuantities.html">IpoptCalculatedQuantities</a> *&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method is called once per iteration, after the iteration summary output has been printed. </p>
<p>It provides the current information to the user to do with it anything she wants. It also allows the user to ask for a premature termination of the optimization by returning false, in which case <a class="el" href="namespaceIpopt.html" title="This file contains a base class for all exceptions and a set of macros to help with exceptions.">Ipopt</a> will terminate with a corresponding return status. The basic information provided in the argument list has the quantities values printed in the iteration summary line. If more information is required, a user can obtain it from the IpData and IpCalculatedQuantities objects. However, note that the provided quantities are all for the problem that <a class="el" href="namespaceIpopt.html" title="This file contains a base class for all exceptions and a set of macros to help with exceptions.">Ipopt</a> sees, i.e., the quantities might be scaled, fixed variables might be sorted out, etc. The status indicates things like whether the algorithm is in the restoration phase... In the restoration phase, the dual variables are probably not not changing. </p>

<p>Reimplemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#aa7d7c5e4706688897b2cd6579168f3af">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#ac2cca4d97a274734535fad204f64fdc9">Ipopt::NLPBoundsRemover</a>.</p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00217">217</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>

</div>
</div>
<a id="a8a5d127db49494ab7001e55c5438f888"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a5d127db49494ab7001e55c5438f888">&#9670;&nbsp;</a></span>GetScalingParameters()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Ipopt::NLP::GetScalingParameters </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; const <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceIpopt.html#ab75ce5f2ad60aa86e4dff723998e653f">Number</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Vector.html">Vector</a> &gt; &amp;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Routines to get the scaling parameters. </p>
<p>These do not need to be overloaded unless the options are set for user scaling. </p>

<p>Reimplemented in <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#af3bfe72fdd3d12fcc905c2e60d2ad576">Ipopt::NLPBoundsRemover</a>, and <a class="el" href="classIpopt_1_1TNLPAdapter.html#a1c825d04ad8225964669a7a238244846">Ipopt::TNLPAdapter</a>.</p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00242">242</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>

</div>
</div>
<a id="a9bdad901e4cb4aa8fbe71c35e61948b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9bdad901e4cb4aa8fbe71c35e61948b0">&#9670;&nbsp;</a></span>GetQuasiNewtonApproximationSpaces()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Ipopt::NLP::GetQuasiNewtonApproximationSpaces </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1VectorSpace.html">VectorSpace</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>approx_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1SmartPtr.html">SmartPtr</a>&lt; <a class="el" href="classIpopt_1_1Matrix.html">Matrix</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>P_approx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Method for obtaining the subspace in which the limited-memory Hessian approximation should be done. </p>
<p>This is only called if the limited-memory Hessian approximation is chosen. Since the Hessian is zero in the space of all variables that appear in the problem functions only linearly, this allows the user to provide a <a class="el" href="classIpopt_1_1VectorSpace.html" title="VectorSpace base class, corresponding to the Vector base class.">VectorSpace</a> for all nonlinear variables, and an <a class="el" href="classIpopt_1_1ExpansionMatrix.html" title="Class for expansion/projection matrices.">ExpansionMatrix</a> to lift from this <a class="el" href="classIpopt_1_1VectorSpace.html" title="VectorSpace base class, corresponding to the Vector base class.">VectorSpace</a> to the <a class="el" href="classIpopt_1_1VectorSpace.html" title="VectorSpace base class, corresponding to the Vector base class.">VectorSpace</a> of the primal variables x. If the returned values are NULL, it is assumed that the Hessian is to be approximated in the space of all x variables. The default instantiation of this method returns NULL, and a user only has to overwrite this method if the approximation is to be done only in a subspace. </p>

<p>Reimplemented in <a class="el" href="classIpopt_1_1TNLPAdapter.html#a65dd2fbd322b71a48d17818efde117d8">Ipopt::TNLPAdapter</a>, and <a class="el" href="classIpopt_1_1NLPBoundsRemover.html#a08966cbde0fbf585f00e3d0a5b8f7ae3">Ipopt::NLPBoundsRemover</a>.</p>

<p class="definition">Definition at line <a class="el" href="IpNLP_8hpp_source.html#l00273">273</a> of file <a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a>.</p>

</div>
</div>
<a id="a8d5621c69fd1239c153f1cf32d5d70a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d5621c69fd1239c153f1cf32d5d70a8">&#9670;&nbsp;</a></span>operator=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Ipopt::NLP::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1NLP.html">NLP</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default Assignment Operator. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/Interfaces/<a class="el" href="IpNLP_8hpp_source.html">IpNLP.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</body>
</html>
